/*!
   \copyright  Copyright (c) 2019 - 2023 Qualcomm Technologies International, Ltd.
               All Rights Reserved.
               Qualcomm Technologies International, Ltd. Confidential and Proprietary.
   \version    
   \file       peer_ui.h
   \defgroup   peer_ui  Peer UI
   @{
      \ingroup peer_service
      \brief	Intercept UI input messages, add the delay and re-inject locally for
               synchronisation of UI input messages such as prompts.
*/

#ifndef PEER_UI_H_
#define PEER_UI_H_

#include "system_clock.h"
#include "domain_message.h"

#define PEER_UI_PROMPT_DELAY_MS  (200U)
#define PEER_UI_PROMPT_DELAY_US  (US_PER_MS * PEER_UI_PROMPT_DELAY_MS)

#ifdef INCLUDE_ANC_V3
#define PEER_ANC_UI_INPUT_DELAY_MS (150U)
#else
#define PEER_ANC_UI_INPUT_DELAY_MS (200U)
#endif /* INCLUDE_ANC_V3 */

#define PEER_ANC_UI_INPUT_DELAY_US  (US_PER_MS * PEER_ANC_UI_INPUT_DELAY_MS)

#define PEER_LEAKTHROUGH_UI_INPUT_DELAY_MS  (300U)
#define PEER_LEAKTHROUGH_UI_INPUT_DELAY_US  (US_PER_MS * PEER_LEAKTHROUGH_UI_INPUT_DELAY_MS)

/*  \brief Messages sent by the peer ui component to clients. */
typedef enum peer_ui_messages
{
    PEER_UI_MSG_PROMPT_DROPPED = PEER_UI_SERVICE_MESSAGE_BASE,

   /* This must be the final message */
    PEER_UI_MSG_END
} peer_ui_messages_t;
    
/*! brief Initialise Peer Ui  module */
bool PeerUi_Init(Task init_task);

#endif /* PEER_UI_H_ */

/*! @} */